package com.ps.store;

import com.ps.property.QuestionVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.util.List;

/**
 * @author gt
 * @类说明：
 * @date 2020/10/23 9:20
 */
@Mapper
public interface QuestionStore {
    /**
     * 问题新增
     * @param questionVo
     */
    int questionAdd(QuestionVo questionVo);

    /**
     * 问题查询（包括分页，模糊查询）
     * @param questionVo
     * @return
     */
    List<QuestionVo> questionQuery(QuestionVo questionVo);

    /**
     * 根据id问题查询
     * @return
     */
    @Select("select * from t_ask_question where question_id = #{questionId}")
    QuestionVo questionQueryById(int questionId);

    /**
     * 查询回答数量大于0的问题数据
     * @return
     */
    @Select("select * from t_ask_question where reply_amount > 0")
    List<QuestionVo> questionQueryByReplyAmountBigZero();

    /**
     * 查询回答数量=0的问题数据
     * @return
     */
    @Select("select * from t_ask_question where reply_amount = 0")
    List<QuestionVo> questionQueryByReplyAmountZero();

    /**
     * 问题修改
     * @param questionVo
     */
    int questionUpdate(QuestionVo questionVo);

    /**
     * 根据问题ID新增（也就是修改）问题浏览数
     * @param questionId
     * @return
     */
    @Update("update t_ask_question set browse_amount=browse_amount+1 where question_id=#{questionId}")
    int addBrowseAmount(int questionId);

    /**
     * 根据问题ID新增（也就是修改）问题回复条数
     * @param questionId
     * @return
     */
    @Update("update t_ask_question set reply_article_number=reply_article_number+1 where question_id=#{questionId}")
    int addReplyArticleNumber(int questionId);

    /**
     * 根据问题ID新增（也就是修改）问题回复人数
     * @param questionId
     * @return
     */
    @Update("update t_ask_question set reply_amount = reply_amount+1 where question_id=#{questionId}")
    int addReplyAmount(int questionId);

    /**
     * 根据问题ID新增（也就是修改）问题评论条数
     * @param questionId
     * @return
     */
    @Update("update t_ask_question set comment_amount = comment_amount+1 where question_id=#{questionId}")
    int addCommentAmount(int questionId);

    /**
     * 根据问题ID新增（也就是修改）问题收藏人数
     * @param questionId
     * @return
     */
    @Update("update t_ask_question set collect_amount = collect_amount+1 where question_id=#{questionId}")
    int addCollectAmount(int questionId);
}
